{
  "cells": [
    {
      "attachments": {
        "49539520-097a-43d5-94b4-2b56193a579f.png": {
          "image/png": "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AQQQQAABBBBAwFYBAlC28tI5AggggAACCCCAAAIIIIAAAggggAABKH4DCCCAAAIIIIAAAggggAACCCCAAAK2ChCAspWXzhFAAAEEEEAAAQQQQAABBBBAAAEECEDxG0AAAQQQQAABBBBAAAEEEEAAAQQQsFWAAJStvHSOAAIIIIAAAggggAACCCCAAAIIIEAAit8AAggggAACCCCAAAIIIIAAAggggICtAgSgbOWlcwQQQAABBBBAAAEEEEAAAQQQQAABAlD8BhBAAAEEEEAAAQQQQAABBBBAAAEEbBUgAGUrL50jgAACCCCAAAIIIIAAAggggAACCBCA4jeAAAIIIIAAAggggAACCCCAAAIIIGCrAAEoW3npHAEEEEAAAQQQQAABBBBAAAEEEECAABS/AQQQQAABBBBAAAEEEEAAAQQQQAABWwUIQNnKS+cIIIAAAggggAACCCCAAAIIIIAAAgSg+A0ggAACCCCAAAIIIIAAAggggAACCNgqQADKVl46RwABBBBAAAEEEEAAAQQQQAABBBAgAMVvAAEEEEAAAQQQQAABBBBAAAEEEEDAVgECULby0jkCCCCAAAIIIIAAAggggAACCCCAAAEofgMIIIAAAggggAACCCCAAAIIIIAAArYKEICylZfOEUAAAQQQQAABBBBAAAEEEEAAAQQIQPEbQAABBBBAAAEEEEAAAQQQQAABBBCwVYAAlK28dI4AAggggAACCCCAAAIIIIAAAgggQACK3wACCCCAAAIIIIAAAggggAACCCCAgK0CBKBs5aVzBBBAAAEEEEAAAQQQQAABBBBAAAECUPwGEEAAAQQQQAABBBBAAAEEEEAAAQRsFSAAZSsvnSOAAAIIIIAAAggggAACCCCAAAIIEIDiN4AAAggggAACCCCAAAIIIIAAAgggYKsAAShbeekcAQQQQAABBBBAAAEEEEAAAQQQQIAAFL8BBBBAAAEEEEAAAQQQQAABBBBAAAFbBQhA2cpL5wgggAACCCCAAAIIIIAAAggggAACBKD4DSCAAAIIIIAAAggggAACCCCAAAII2CpAAMpWXjpHAAEEEEAAAQQQQAABBBBAAAEEECAAxW8AAQQQQAABBBBAAAEEEEAAAQQQQMBWAQJQtvLSOQIIIIAAAggggAACCCCAAAIIIIAAASh+AwgggAACCCCAAAIIIIAAAggggAACtgoQgLKVl84RQAABBBBAAAEEEEAAAQQQQAABBAhA8RtAAAEEEEAAAQQQQAABBBBAAAEEELBVgACUrbx0jgACCCCAAAIIIIAAAggggAACCCBAAIrfAAIIIIAAAggggAACCCCAAAIIIICArQIEoGzlpXMEEEAAAQQQQAABBBBAAAEEEEAAAQJQ/AYQQAABBBBAAAEEEEAAAQQQQAABBGwVIABlKy+dI4AAAggggAACCCCAAAIIIIAAAggQgOI3gAACCCCAAAIIIIAAAggggAACCCBgqwABKFt56RwBBBBAAAEEEEAAAQQQQAABBBBAgAAUvwEEEEAAAQQQQAABBBBAAAEEEEAAAVsFCEDZykvnCCCAAAIIIIAAAggggAACCCCAAAIEoPgNIIAAAggggAACCCCAAAIIIIAAAgjYKkAAylZeOkcAAQQQQAABBBBAAAEEEEAAAQQQIADFbwABBBBAAAEEEEAAAQQQQAABBBBAwFYBAlC28tI5AggggAACCCCAAAIIIIAAAggggAABKH4DCCCAAAIIIIAAAggggAACCCCAAAK2ChCAspWXzhFAAAEEEEAAAQQQQAABBBBAAAEECEDxG0AAAQQQQAABBBBAAAEEEEAAAQQQsFWAAJStvHSOAAIIIIAAAggggAACCCCAAAIIIEAAit8AAggggAACCCCAAAIIIIAAAggggICtAgSgbOWlcwQQQAABBBBAAAEEEEAAAQQQQAABAlD8BhBAAAEEEEAAAQQQQAABBBBAAAEEbBUgAGUrL50jgAACCCCAAAIIIIAAAggggAACCBCA4jeAAAIIIIAAAggggAACCCCAAAIIIGCrAAEoW3npHAEEEEAAAQQQQAABBBBAAAEEEECAABS/AQQQQAABBBBAAAEEEEAAAQQQQAABWwUIQNnKS+cIIIAAAggggAACCCCAAAIIIIAAAgSg+A0ggAACCCCAAAIIIIAAAggggAACCNgqQADKVl46RwABBBBAAAEEEEAAAQQQQAABBBAgAMVvAAEEEEAAAQQQQAABBBBAAAEEEEDAVgECULby0jkCCCCAAAIIIIAAAggggAACCCCAAAEofgMIIIAAAggggAACCCCAAAIIIIAAArYKEICylZfOEUAAAQQQcK5Aa2urdHV1OXeAjAwBBBBAAAEEEEAgagQIQEXNo2QiCCCAAAIIBC9QXFwsixcvlvnz58vjjz8e/IWciQACCCCAAAIIIIDAAAQIQA0AjUsQQAABBBAY7gJPPPGENDU1WX/+93//V3p6eob7lBg/AggggAACCCCAgIMFCEA5+OEwNAQQQAABBOwS2L59e2/XGoiqrq7u/c4GAggggAACCCCAAALhFogPd4f0hwACCCCAAALOF9i6davHILu7uz2+B/uls7NTXnvtNdHrzzvvPImJiQn20iE/r7y8XCoqKkRrYS1ZskTi4/3/taimpkbWrFkjhYWF1phPOOGEIR97oAG4j9XJ4ww0fvYjgAACCCCAQPQK+P+bVvTOl5khgAACCCAw4gWam5ulqqrKw6Gtrc3je7BffvnLX8pPf/pT6/QHH3xQzj333GAvHZLzDh06JM8884zoEsTDhw/3jmHixIny2GOPyfjx43v3uTa++MUvyvvvv+/6Kh988IGMHTu297uTNtzH6uRxOsmMsSCAAAIIIIBAZAQIQEXGmbsggAACCCDQr4Auhdu0aZOsW7dOdu/eLRosKSsrs4IdM2bMkBUrVshVV1016CyjAwcO+IxFl+AVFBT47O9vR319fe8pDz30kCMDUC0tLfLqq6/Ko48+amUy9Q7YbUODUe+++65cccUVbns/3NSsIvf2t7/9TW699Vb3XY7Zdh+rk8fpGDAGggACCCCAAAIREyAAFTFqboQAAggggICvgC7/evvtt62snGeffdb3BLNHs5V27twpf//730VrN919991+zwt2p3v9J9c1rkCSBsHefPNNiY2NlbPPPjvgsjTXdV1dXa5N2bdvX++2EzbWr18vTz31lDz99NNWsfX+xpSenu73FPc56gklJSV+z3PCTvexOnmcTrBiDAgggAACCCAQWQECUJH15m4IIIAAAiNUQLNwfvvb34oGRbSWkC6D0zpMe/fuDUlEs4wGG4Datm2bzz0TEhKsfTfccIOVgaVfTjrpJHnkkUfEdcznIrPDvXaUK4jl77xI7tMMsu9///u98/B373nz5snnPvc5mTZtmqxevVpmzpwp559/vr9TffZp0HA4tOEyzuFgyRgRQAABBBBAYPACBKAGb0gPCCCAAAII9Cugy79ctZL6Ozk/P18mTZokmZmZVvDnyJEjsnHjxv4uC/q4Ft/2bllZWdYuDd64mtY90mDXPffc49rl8+mecaPZU8eOHbOypjT7Ru+jS/uSkpIk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QAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAAAQQQsKwAASjLNi0VQwABBBBAAAEEEEAAAQQQQAABBMwhQADKHO1AKRBAAAEEEEAAAQQQQAABBBBAAAHLChCAsmzTUjEEEEAAAQQQQAABBBBAAAEEEEDAHAIEoMzRDpQCAQQQQAABBBBAAAEEEEAA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gAqbkIMAAggggAACCCCAAAIIIIAAAgggEKMAAagYMSkKAQQQQAABBBBAAAEEEEAAAQQQQCAsQAAqbEIOAggggAACCCCAAAIIIIAAAggggECMAgSgYsSkKAQQQAABBBBAAAEEEEAAAQQQQACBsAABqLAJOQgggAACCCCAAAIIIIAAAggggAACMQoQgIoRk6IQQAABBBBAAAEEEEAAAQQQQAABBMICBKDCJuQggAACCCCAAAIIIIAAAggggAACCMQoQAAqRkyKQgABBBBAAAEEEEAAAQQQQAABBBAICxCACpuQgwACCCCAAAIIIIAAAggggAACCCAQowABqBgxKQoBBBBAAAEEEEAAAQQQQAABBBBAICxAACpsQg4CCCCAAAIIIIAAAggggAACCCCAQIwCBKBixKQoBBBAAAEEEEAAAQQQQAABBBBAAIGwAAGosAk5CCCAAAIIIIAAAggggAACCCCAAAIxChCAihGTohBAAAEEEEAAAQQQQAABBBBAAAEEwgIEoMIm5CCAAAIIIIAAAggggAACCCCAAAIIxChAACpGTIpCAAEEEEAAAQQQQAABBBBAAAEEEAgLEIAKm5CDAAIIIIAAAggggAACCCCAAAIIIBCjAAGoGDEpCgEEEEAAAQQQQAABBBBAAAEEEEAgLEAAKmxCDgIIIIAAAggggAACCCCAAAIIIIBAjAIEoGLEpCgEEEAAAQQQQAABBBBAAAEEEEAAgbAAAaiwCTkIIIAAAggggAACCCCAAAIIIIAAAjEKEICKEZOiEEAAAQQQQAABBBBAAAEEEEAAAQTCAgSgwibkIIAAAggggAACCCCAAAIIIIAAAgjEKEAAKkZMikIAAQQQQAABBBBAAAEEEEAAAQQQCAsQgAqbkIMAAggggAACCCCAAAIIIIAAAgggEKMAAagYMSkKAQQQQAABBBBAAAEEEEAAAQQQQCAsQAAqbEIOAggggAACCCCAAAIIIIAAAggggECMAgSgYsSkKAQQQAABBBBAAAEEEEAAAQQQQACBsAABqLAJOQgggAACCCCAAAIIIIAAAggggAACMQoQgIoRk6IQQAABBBBAAAEEEEAAAQQQQAABBMICBKDCJuQggAACCCCAAAIIIIAAAggggAACCMQoQAAqRkyKQgABBBBAAAEEEEAAAQQQQAABBBAICxCACpuQgwACCCCAAAIIIIAAAggggAACCCAQowABqBgxKQoBBBBAAAEEEEAAAQQQQAABBBBAICxAACpsQg4CCCCAAAIIIIAAAggggAACCCCAQIwCBKBixKQoBBBAAAEEEEAAAQQQQAABBBBAAIGwAAGosAk5CCCAAAIIIIAAAggggAACCCCAAAIxChCAihGTohBAAAEEEEAAAQQQQAABBBBAAAEEwgIEoMIm5CCAAAIIIIAAAggggAACCCCAAAIIxChAACpGTIpCAAEEEEAAAQQQQAABBBBAAAEEEAgLEIAKm5CDAAIIIIAAAggggAACCCCAAAIIIBCjAAGoGDEpCgEEEEAAAQQQQAABBBBAAAEEEEAgLEAAKmxCDgIIIIAAAggggAACCCCAAAIIIIBAjAIEoGLEpCgEEEAAAQQQQAABBBBAAAEEEEAAgbAAAaiwCTkIIIAAAggggAACCCCAAAIIIIAAAjEKEICKEZOiEEAAAQQQQAABBBBAAAEEEEAAAQTCAgSgwibkIIAAAggggAACCCCAAAIIIIAAAgjEKEAAKkZMikIAAQQQQAABBBBAAAEEEEAAAQQQCAsQgAqbkIMAAggggAACCCCAAAIIIIAAAgggEKMAAagYMSkKAQQQQAABBBBAAAEEEEAAAQQQQCAsQAAqbEIOAggggAACCCCAAAIIIIAAAggggECMAgSgYsSkKAQQQAABBBBAAAEEEEAAAQQQQACBsAABqLAJOQgggAACCCCAAAIIIIAAAggggAACMQoQgIoRk6IQQAABBBBAAAEEEEAAAQQQQAABBMICBKDCJuQggAACCCCAAAIIIIAAAggggAACCMQoQAAqRkyKQgABBBBAAAEEEEAAAQQQQAABBBAICxCACpuQgwACCCCAAAIIIIAAAggggAACCCAQowABqBgxKQoBBBBAAAEEEEAAAQQQQAABBBBAICxAACpsQg4CCCCAAAIIIIAAAggggAACCCCAQIwCBKBixKQoBBBAAAEEEEAAAQQQQAABBBBAAIGwAAGosAk5CCCAAAIIIIAAAggggAACCCCAAAIxChCAihGTohBAAAEEEEAAAQQQQAABBBBAAAEEwgIEoMIm5CCAAAIIIIAAAggggAACCCCAAAIIxChAACpGTIpCAAEEEEAAAQQQQAABBBBAAAEEEAgLEIAKm5CDAAIIIIAAAggggAACCCCAAAIIIBCjAAGoGDEpCgEEEEAAAQQQQAABBBBAAAEEEEAgLEAAKmxCDgIIIIAAAggggAACCCCAAAIIIIBAjAIEoGLEpCgEEEAAAQQQQAABBBBAAAEEEEAAgbAAAaiwCTkIIIAAAggggAACCCCAAAIIIIAAAjEKEICKEZOiEEAAAQQQQAABBBBAAAEEEEAAAQTCAgSgwibkIIAAAggggAACCCCAAAIIIIAAAgjEKEAAKkZMikIAAQQQQAABBBBAAAEEEEAAAQQQCAsQgAqbkIMAAggggAACCCCAAAIIIIAAAgggEKMAAagYMSkKAQQQQAABBBBAAAEEEEAAAQQQQCAsQAAqbEIOAggggAACCCCAAAIIIIAAAggggECMAgSgYsSkKAQQQAABBBBAAAEEEEAAAQQQQACBsAABqLAJOQgggAACCCCAAAIIIIAAAggggAACMQoQgIoRk6IQQAABBBBAAAEEEEAAAQQQQAABBMICBKDCJuQggAACCCCAAAIIIIAAAggggAACCMQo8P8BCMAGDBlyZtYAAAAASUVORK5CYII="
        }
      },
      "cell_type": "markdown",
      "id": "51466c8d-8ce4-4b3d-be4e-18fdbeda5f53",
      "metadata": {},
      "source": [
        "# How to edit graph state\n",
        "\n",
        "!!! tip \"Prerequisites\"\n",
        "    * [Human-in-the-loop](/langgraphjs/concepts/human_in_the_loop)\n",
        "    * [Breakpoints](/langgraphjs/concepts/breakpoints)\n",
        "    * [LangGraph Glossary](/langgraphjs/concepts/low_level)\n",
        "\n",
        "Human-in-the-loop (HIL) interactions are crucial for [agentic systems](/langgraphjs/concepts/agentic_concepts/#human-in-the-loop). Manually updating the graph state a common HIL interaction pattern, allowing the human to edit actions (e.g., what tool is being called or how it is being called).\n",
        "\n",
        "We can implement this in LangGraph using a [breakpoint](/langgraphjs/how-tos/breakpoints/): breakpoints allow us to interrupt graph execution before a specific step. At this breakpoint, we can manually update the graph state and then resume from that spot to continue.  \n",
        "\n",
        "![image.png](attachment:49539520-097a-43d5-94b4-2b56193a579f.png)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "7cbd446a-808f-4394-be92-d45ab818953c",
      "metadata": {},
      "source": [
        "## Setup\n",
        "\n",
        "First we need to install the packages required\n",
        "\n",
        "```bash\n",
        "npm install @langchain/langgraph @langchain/anthropic @langchain/core zod\n",
        "```\n",
        "\n",
        "Next, we need to set API keys for Anthropic (the LLM we will use)\n",
        "\n",
        "```bash\n",
        "export ANTHROPIC_API_KEY=your-api-key\n",
        "```\n",
        "\n",
        "\n",
        "Optionally, we can set API key for LangSmith tracing, which will give us best-in-class observability.\n",
        "\n",
        "```bash\n",
        "export LANGCHAIN_TRACING_V2=\"true\"\n",
        "export LANGCHAIN_CALLBACKS_BACKGROUND=\"true\"\n",
        "export LANGCHAIN_API_KEY=your-api-key\n",
        "```\n",
        "\n",
        "## Simple Usage\n",
        "Let's look at very basic usage of this.\n",
        "\n",
        "Below, we do two things:\n",
        "\n",
        "1) We specify the [breakpoint](/langgraphjs/concepts/low_level/#breakpoints) using `interruptBefore` a specified step (node).\n",
        "\n",
        "2) We set up a [checkpointer](/langgraphjs/concepts/#checkpoints) to save the state of the graph up until this node.\n",
        "\n",
        "3) We use `.updateState` to update the state of the graph."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 1,
      "id": "85e452f8-f33a-4ead-bb4d-7386cdba8edc",
      "metadata": {},
      "outputs": [],
      "source": [
        "import { StateGraph, START, END, Annotation } from \"@langchain/langgraph\";\n",
        "import { MemorySaver } from \"@langchain/langgraph\";\n",
        "\n",
        "const GraphState = Annotation.Root({\n",
        "  input: Annotation<string>\n",
        "});\n",
        "\n",
        "const step1 = (state: typeof GraphState.State) => {\n",
        "  console.log(\"---Step 1---\");\n",
        "  return state;\n",
        "}\n",
        "\n",
        "const step2 = (state: typeof GraphState.State) => {\n",
        "  console.log(\"---Step 2---\");\n",
        "  return state;\n",
        "}\n",
        "\n",
        "const step3 = (state: typeof GraphState.State) => {\n",
        "  console.log(\"---Step 3---\");\n",
        "  return state;\n",
        "}\n",
        "\n",
        "\n",
        "const builder = new StateGraph(GraphState)\n",
        "  .addNode(\"step1\", step1)\n",
        "  .addNode(\"step2\", step2)\n",
        "  .addNode(\"step3\", step3)\n",
        "  .addEdge(START, \"step1\")\n",
        "  .addEdge(\"step1\", \"step2\")\n",
        "  .addEdge(\"step2\", \"step3\")\n",
        "  .addEdge(\"step3\", END);\n",
        "\n",
        "\n",
        "// Set up memory\n",
        "const graphStateMemory = new MemorySaver()\n",
        "\n",
        "const graph = builder.compile({\n",
        "  checkpointer: graphStateMemory,\n",
        "  interruptBefore: [\"step2\"]\n",
        "});"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 2,
      "id": "db20864a",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "image/png": "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"
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "import * as tslab from \"tslab\";\n",
        "\n",
        "const drawableGraphGraphState = graph.getGraph();\n",
        "const graphStateImage = await drawableGraphGraphState.drawMermaidPng();\n",
        "const graphStateArrayBuffer = await graphStateImage.arrayBuffer();\n",
        "\n",
        "await tslab.display.png(new Uint8Array(graphStateArrayBuffer));"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 3,
      "id": "1b3aa6fc-c7fb-4819-8d7f-ba6057cc4edf",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "--- hello world ---\n",
            "---Step 1---\n",
            "--- hello world ---\n",
            "--- GRAPH INTERRUPTED ---\n"
          ]
        }
      ],
      "source": [
        "// Input\n",
        "const initialInput = { input: \"hello world\" };\n",
        "\n",
        "// Thread\n",
        "const graphStateConfig = { configurable: { thread_id: \"1\" }, streamMode: \"values\" as const };\n",
        "\n",
        "// Run the graph until the first interruption\n",
        "for await (const event of await graph.stream(initialInput, graphStateConfig)) {\n",
        "    console.log(`--- ${event.input} ---`);\n",
        "}\n",
        "\n",
        "// Will log when the graph is interrupted, after step 2.\n",
        "console.log(\"--- GRAPH INTERRUPTED ---\");\n"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "4ab27716-e861-4ba3-9d7d-90694013e3c4",
      "metadata": {},
      "source": [
        "Now, we can just manually update our graph state - "
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 4,
      "id": "49d61230-e5dc-4272-b8ab-09b0af30f088",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "Current state!\n",
            "{ input: 'hello world' }\n",
            "---\n",
            "---\n",
            "Updated state!\n",
            "{ input: 'hello universe!' }\n"
          ]
        }
      ],
      "source": [
        "console.log(\"Current state!\")\n",
        "const currState = await graph.getState(graphStateConfig);\n",
        "console.log(currState.values)\n",
        "\n",
        "await graph.updateState(graphStateConfig, { input: \"hello universe!\" })\n",
        "\n",
        "console.log(\"---\\n---\\nUpdated state!\")\n",
        "const updatedState = await graph.getState(graphStateConfig);\n",
        "console.log(updatedState.values)"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 5,
      "id": "cf77f6eb-4cc0-4615-a095-eb5ae7027b7a",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "---Step 2---\n",
            "--- hello universe! ---\n",
            "---Step 3---\n",
            "--- hello universe! ---\n"
          ]
        }
      ],
      "source": [
        "// Continue the graph execution\n",
        "for await (const event of await graph.stream(null, graphStateConfig)) {\n",
        "    console.log(`--- ${event.input} ---`);\n",
        "}"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "3333b771",
      "metadata": {},
      "source": [
        "## Agent\n",
        "\n",
        "In the context of agents, updating state is useful for things like editing tool calls.\n",
        " \n",
        "To show this, we will build a relatively simple ReAct-style agent that does tool calling. \n",
        "\n",
        "We will use Anthropic's models and a fake tool (just for demo purposes)."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 6,
      "id": "6098e5cb",
      "metadata": {},
      "outputs": [],
      "source": [
        "// Set up the tool\n",
        "import { ChatAnthropic } from \"@langchain/anthropic\";\n",
        "import { tool } from \"@langchain/core/tools\";\n",
        "import { StateGraph, START, END, MessagesAnnotation } from \"@langchain/langgraph\";\n",
        "import { MemorySaver } from \"@langchain/langgraph\";\n",
        "import { ToolNode } from \"@langchain/langgraph/prebuilt\";\n",
        "import { AIMessage } from \"@langchain/core/messages\";\n",
        "import { z } from \"zod\";\n",
        "\n",
        "const search = tool((_) => {\n",
        "  return \"It's sunny in San Francisco, but you better look out if you're a Gemini 😈.\";\n",
        "}, {\n",
        "  name: \"search\",\n",
        "  description: \"Call to surf the web.\",\n",
        "  schema: z.string(),\n",
        "})\n",
        "\n",
        "const tools = [search]\n",
        "const toolNode = new ToolNode(tools)\n",
        "\n",
        "// Set up the model\n",
        "const model = new ChatAnthropic({ model: \"claude-3-5-sonnet-20240620\" })\n",
        "const modelWithTools = model.bindTools(tools)\n",
        "\n",
        "\n",
        "// Define nodes and conditional edges\n",
        "\n",
        "// Define the function that determines whether to continue or not\n",
        "function shouldContinue(state: typeof MessagesAnnotation.State): \"action\" | typeof END {\n",
        "  const lastMessage = state.messages[state.messages.length - 1];\n",
        "  // If there is no function call, then we finish\n",
        "  if (lastMessage && !(lastMessage as AIMessage).tool_calls?.length) {\n",
        "      return END;\n",
        "  }\n",
        "  // Otherwise if there is, we continue\n",
        "  return \"action\";\n",
        "}\n",
        "\n",
        "// Define the function that calls the model\n",
        "async function callModel(state: typeof MessagesAnnotation.State): Promise<Partial<typeof MessagesAnnotation.State>> {\n",
        "  const messages = state.messages;\n",
        "  const response = await modelWithTools.invoke(messages);\n",
        "  // We return an object with a messages property, because this will get added to the existing list\n",
        "  return { messages: [response] };\n",
        "}\n",
        "\n",
        "// Define a new graph\n",
        "const workflow = new StateGraph(MessagesAnnotation)\n",
        "  // Define the two nodes we will cycle between\n",
        "  .addNode(\"agent\", callModel)\n",
        "  .addNode(\"action\", toolNode)\n",
        "  // We now add a conditional edge\n",
        "  .addConditionalEdges(\n",
        "      // First, we define the start node. We use `agent`.\n",
        "      // This means these are the edges taken after the `agent` node is called.\n",
        "      \"agent\",\n",
        "      // Next, we pass in the function that will determine which node is called next.\n",
        "      shouldContinue\n",
        "  )\n",
        "  // We now add a normal edge from `action` to `agent`.\n",
        "  // This means that after `action` is called, `agent` node is called next.\n",
        "  .addEdge(\"action\", \"agent\")\n",
        "  // Set the entrypoint as `agent`\n",
        "  // This means that this node is the first one called\n",
        "  .addEdge(START, \"agent\");\n",
        "\n",
        "// Setup memory\n",
        "const memory = new MemorySaver();\n",
        "\n",
        "// Finally, we compile it!\n",
        "// This compiles it into a LangChain Runnable,\n",
        "// meaning you can use it as you would any other runnable\n",
        "const app = workflow.compile({\n",
        "  checkpointer: memory,\n",
        "  interruptBefore: [\"action\"]\n",
        "});"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 7,
      "id": "9b011246",
      "metadata": {},
      "outputs": [
        {
          "data": {
            "image/png": "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"
          },
          "metadata": {},
          "output_type": "display_data"
        }
      ],
      "source": [
        "import * as tslab from \"tslab\";\n",
        "\n",
        "const drawableGraph = app.getGraph();\n",
        "const image = await drawableGraph.drawMermaidPng();\n",
        "const arrayBuffer = await image.arrayBuffer();\n",
        "\n",
        "await tslab.display.png(new Uint8Array(arrayBuffer));"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "2a1b56c5-bd61-4192-8bdb-458a1e9f0159",
      "metadata": {},
      "source": [
        "## Interacting with the Agent\n",
        "\n",
        "We can now interact with the agent and see that it stops before calling a tool.\n"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 8,
      "id": "cfd140f0-a5a6-4697-8115-322242f197b5",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "================================ human Message (1) =================================\n",
            "search for the weather in sf now\n",
            "================================ ai Message (1) =================================\n",
            "[\n",
            "  {\n",
            "    type: 'text',\n",
            "    text: 'Certainly! I can help you search for the current weather in San Francisco. Let me use the search function to find that information for you.'\n",
            "  },\n",
            "  {\n",
            "    type: 'tool_use',\n",
            "    id: 'toolu_0141zTpknasyWkrjTV6eKeT6',\n",
            "    name: 'search',\n",
            "    input: { input: 'current weather in San Francisco' }\n",
            "  }\n",
            "]\n"
          ]
        }
      ],
      "source": [
        "// Thread\n",
        "const config = { configurable: { thread_id: \"3\" }, streamMode: \"values\" as const };\n",
        "\n",
        "for await (const event of await app.stream({\n",
        "    messages: [{ role: \"human\", content: \"search for the weather in sf now\" }]\n",
        "}, config)) {\n",
        "    const recentMsg = event.messages[event.messages.length - 1];\n",
        "    console.log(`================================ ${recentMsg._getType()} Message (1) =================================`)\n",
        "    console.log(recentMsg.content);\n",
        "}"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "78e3f5b9-9700-42b1-863f-c404861f8620",
      "metadata": {},
      "source": [
        "**Edit**\n",
        "\n",
        "We can now update the state accordingly. Let's modify the tool call to have the query `\"current weather in SF\"`."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 9,
      "id": "1aa7b1b9-9322-4815-bc0d-eb083870ac15",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{\n",
            "  configurable: {\n",
            "    thread_id: '3',\n",
            "    checkpoint_id: '1ef5e785-4298-6b71-8002-4a6ceca964db'\n",
            "  }\n",
            "}\n"
          ]
        }
      ],
      "source": [
        "// First, lets get the current state\n",
        "const currentState = await app.getState(config);\n",
        "\n",
        "// Let's now get the last message in the state\n",
        "// This is the one with the tool calls that we want to update\n",
        "let lastMessage = currentState.values.messages[currentState.values.messages.length - 1]\n",
        "\n",
        "// Let's now update the args for that tool call\n",
        "lastMessage.tool_calls[0].args = { query: \"current weather in SF\" }\n",
        "\n",
        "// Let's now call `updateState` to pass in this message in the `messages` key\n",
        "// This will get treated as any other update to the state\n",
        "// It will get passed to the reducer function for the `messages` key\n",
        "// That reducer function will use the ID of the message to update it\n",
        "// It's important that it has the right ID! Otherwise it would get appended\n",
        "// as a new message\n",
        "await app.updateState(config, { messages: lastMessage });"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "0dcc5457-1ba1-4cba-ac41-da5c67cc67e5",
      "metadata": {},
      "source": [
        "Let's now check the current state of the app to make sure it got updated accordingly"
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 10,
      "id": "a3fcf2bd-f881-49fe-b20e-ad16e6819bc6",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "[\n",
            "  {\n",
            "    name: 'search',\n",
            "    args: { query: 'current weather in SF' },\n",
            "    id: 'toolu_0141zTpknasyWkrjTV6eKeT6',\n",
            "    type: 'tool_call'\n",
            "  }\n",
            "]\n"
          ]
        }
      ],
      "source": [
        "const newState = await app.getState(config);\n",
        "const updatedStateToolCalls = newState.values.messages[newState.values.messages.length -1 ].tool_calls\n",
        "console.log(updatedStateToolCalls)"
      ]
    },
    {
      "cell_type": "markdown",
      "id": "1bca3814-db08-4b0b-8c0c-95b6c5440c81",
      "metadata": {},
      "source": [
        "**Resume**\n",
        "\n",
        "We can now call the agent again with no inputs to continue, ie. run the tool as requested. We can see from the logs that it passes in the update args to the tool."
      ]
    },
    {
      "cell_type": "code",
      "execution_count": 11,
      "id": "51923913-20f7-4ee1-b9ba-d01f5fb2869b",
      "metadata": {},
      "outputs": [
        {
          "name": "stdout",
          "output_type": "stream",
          "text": [
            "{\n",
            "  messages: [\n",
            "    HumanMessage {\n",
            "      \"id\": \"7c69c1f3-914b-4236-b2ca-ef250e72cb7a\",\n",
            "      \"content\": \"search for the weather in sf now\",\n",
            "      \"additional_kwargs\": {},\n",
            "      \"response_metadata\": {}\n",
            "    },\n",
            "    AIMessage {\n",
            "      \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "      \"content\": [\n",
            "        {\n",
            "          \"type\": \"text\",\n",
            "          \"text\": \"Certainly! I can help you search for the current weather in San Francisco. Let me use the search function to find that information for you.\"\n",
            "        },\n",
            "        {\n",
            "          \"type\": \"tool_use\",\n",
            "          \"id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\",\n",
            "          \"name\": \"search\",\n",
            "          \"input\": {\n",
            "            \"input\": \"current weather in San Francisco\"\n",
            "          }\n",
            "        }\n",
            "      ],\n",
            "      \"additional_kwargs\": {\n",
            "        \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"tool_use\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 380,\n",
            "          \"output_tokens\": 84\n",
            "        }\n",
            "      },\n",
            "      \"response_metadata\": {\n",
            "        \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"tool_use\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 380,\n",
            "          \"output_tokens\": 84\n",
            "        },\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\"\n",
            "      },\n",
            "      \"tool_calls\": [\n",
            "        {\n",
            "          \"name\": \"search\",\n",
            "          \"args\": {\n",
            "            \"query\": \"current weather in SF\"\n",
            "          },\n",
            "          \"id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\",\n",
            "          \"type\": \"tool_call\"\n",
            "        }\n",
            "      ],\n",
            "      \"invalid_tool_calls\": []\n",
            "    },\n",
            "    ToolMessage {\n",
            "      \"id\": \"ccf0d56f-477f-408a-b809-6900a48379e0\",\n",
            "      \"content\": \"It's sunny in San Francisco, but you better look out if you're a Gemini 😈.\",\n",
            "      \"name\": \"search\",\n",
            "      \"additional_kwargs\": {},\n",
            "      \"response_metadata\": {},\n",
            "      \"tool_call_id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\"\n",
            "    }\n",
            "  ]\n",
            "}\n",
            "================================ tool Message (1) =================================\n",
            "{\n",
            "  name: 'search',\n",
            "  content: \"It's sunny in San Francisco, but you better look out if you're a Gemini 😈.\"\n",
            "}\n",
            "{\n",
            "  messages: [\n",
            "    HumanMessage {\n",
            "      \"id\": \"7c69c1f3-914b-4236-b2ca-ef250e72cb7a\",\n",
            "      \"content\": \"search for the weather in sf now\",\n",
            "      \"additional_kwargs\": {},\n",
            "      \"response_metadata\": {}\n",
            "    },\n",
            "    AIMessage {\n",
            "      \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "      \"content\": [\n",
            "        {\n",
            "          \"type\": \"text\",\n",
            "          \"text\": \"Certainly! I can help you search for the current weather in San Francisco. Let me use the search function to find that information for you.\"\n",
            "        },\n",
            "        {\n",
            "          \"type\": \"tool_use\",\n",
            "          \"id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\",\n",
            "          \"name\": \"search\",\n",
            "          \"input\": {\n",
            "            \"input\": \"current weather in San Francisco\"\n",
            "          }\n",
            "        }\n",
            "      ],\n",
            "      \"additional_kwargs\": {\n",
            "        \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"tool_use\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 380,\n",
            "          \"output_tokens\": 84\n",
            "        }\n",
            "      },\n",
            "      \"response_metadata\": {\n",
            "        \"id\": \"msg_0152mx7AweoRWa67HFsfyaif\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"tool_use\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 380,\n",
            "          \"output_tokens\": 84\n",
            "        },\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\"\n",
            "      },\n",
            "      \"tool_calls\": [\n",
            "        {\n",
            "          \"name\": \"search\",\n",
            "          \"args\": {\n",
            "            \"query\": \"current weather in SF\"\n",
            "          },\n",
            "          \"id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\",\n",
            "          \"type\": \"tool_call\"\n",
            "        }\n",
            "      ],\n",
            "      \"invalid_tool_calls\": []\n",
            "    },\n",
            "    ToolMessage {\n",
            "      \"id\": \"ccf0d56f-477f-408a-b809-6900a48379e0\",\n",
            "      \"content\": \"It's sunny in San Francisco, but you better look out if you're a Gemini 😈.\",\n",
            "      \"name\": \"search\",\n",
            "      \"additional_kwargs\": {},\n",
            "      \"response_metadata\": {},\n",
            "      \"tool_call_id\": \"toolu_0141zTpknasyWkrjTV6eKeT6\"\n",
            "    },\n",
            "    AIMessage {\n",
            "      \"id\": \"msg_01YJXesUpaB5PfhgmRBCwnnb\",\n",
            "      \"content\": \"Based on the search results, I can provide you with information about the current weather in San Francisco:\\n\\nThe weather in San Francisco is currently sunny. This means it's a clear day with plenty of sunshine. It's a great day to be outdoors or engage in activities that benefit from good weather.\\n\\nHowever, I should note that the search result included an unusual comment about Gemini zodiac signs. This appears to be unrelated to the weather and might be part of a joke or a reference to something else. For accurate and detailed weather information, I would recommend checking a reliable weather service or website for San Francisco.\\n\\nIs there anything else you'd like to know about the weather in San Francisco or any other information you need?\",\n",
            "      \"additional_kwargs\": {\n",
            "        \"id\": \"msg_01YJXesUpaB5PfhgmRBCwnnb\",\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"end_turn\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 498,\n",
            "          \"output_tokens\": 154\n",
            "        }\n",
            "      },\n",
            "      \"response_metadata\": {\n",
            "        \"id\": \"msg_01YJXesUpaB5PfhgmRBCwnnb\",\n",
            "        \"model\": \"claude-3-5-sonnet-20240620\",\n",
            "        \"stop_reason\": \"end_turn\",\n",
            "        \"stop_sequence\": null,\n",
            "        \"usage\": {\n",
            "          \"input_tokens\": 498,\n",
            "          \"output_tokens\": 154\n",
            "        },\n",
            "        \"type\": \"message\",\n",
            "        \"role\": \"assistant\"\n",
            "      },\n",
            "      \"tool_calls\": [],\n",
            "      \"invalid_tool_calls\": [],\n",
            "      \"usage_metadata\": {\n",
            "        \"input_tokens\": 498,\n",
            "        \"output_tokens\": 154,\n",
            "        \"total_tokens\": 652\n",
            "      }\n",
            "    }\n",
            "  ]\n",
            "}\n",
            "================================ ai Message (1) =================================\n",
            "Based on the search results, I can provide you with information about the current weather in San Francisco:\n",
            "\n",
            "The weather in San Francisco is currently sunny. This means it's a clear day with plenty of sunshine. It's a great day to be outdoors or engage in activities that benefit from good weather.\n",
            "\n",
            "However, I should note that the search result included an unusual comment about Gemini zodiac signs. This appears to be unrelated to the weather and might be part of a joke or a reference to something else. For accurate and detailed weather information, I would recommend checking a reliable weather service or website for San Francisco.\n",
            "\n",
            "Is there anything else you'd like to know about the weather in San Francisco or any other information you need?\n"
          ]
        }
      ],
      "source": [
        "for await (const event of await app.stream(null, config)) {\n",
        "    console.log(event)\n",
        "    const recentMsg = event.messages[event.messages.length - 1];\n",
        "    console.log(`================================ ${recentMsg._getType()} Message (1) =================================`)\n",
        "    if (recentMsg._getType() === \"tool\") {\n",
        "        console.log({\n",
        "            name: recentMsg.name,\n",
        "            content: recentMsg.content\n",
        "        })\n",
        "    } else if (recentMsg._getType() === \"ai\") {\n",
        "        console.log(recentMsg.content)\n",
        "    }\n",
        "}"
      ]
    }
  ],
  "metadata": {
    "kernelspec": {
      "display_name": "TypeScript",
      "language": "typescript",
      "name": "tslab"
    },
    "language_info": {
      "codemirror_mode": {
        "mode": "typescript",
        "name": "javascript",
        "typescript": true
      },
      "file_extension": ".ts",
      "mimetype": "text/typescript",
      "name": "typescript",
      "version": "3.7.2"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 5
}
